home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ftp.cs.arizona.edu
/
ftp.cs.arizona.edu.tar
/
ftp.cs.arizona.edu
/
icon
/
newsgrp
/
group97a.txt
/
000043_icon-group-sender _Fri Feb 21 20:11:23 1997.msg
< prev
next >
Wrap
Internet Message Format
|
2000-09-20
|
5KB
Received: by cheltenham.cs.arizona.edu; Mon, 24 Feb 1997 08:29:56 MST
To: icon-group@cs.arizona.edu
Date: 21 Feb 1997 20:11:23 GMT
From: espie@allege.ens.fr (Marc Espie)
Message-Id: <5ekvhb$7md@nef.ens.fr>
Organization: Ecole Normale Superieure, Paris
Sender: icon-group-request@cs.arizona.edu
References: <330DAC29.41C67EA6@solstice.digicomp.com>
Subject: Re: What's the biggest Icon program you've written?
Errors-To: icon-group-errors@cs.arizona.edu
Status: RO
Content-Length: 4683
In article <330DAC29.41C67EA6@solstice.digicomp.com>,
Jan Galkowski <jan@solstice.digicomp.com> wrote:
>This is an informal and very unscientific survey.
>
>What's the biggest Icon program you've written? What did it do?
>Do you have any "lessons learned" you'd like to share?
A set of functions to manipulate some combinatorial graphs, and display
the result graphically.
Roughly 4000 lines (wc says 3936 11172 82247) for the total.
I've got into the main pitfall of Icon: forgetting about failure.
writing stuff such as i <- value & function(i)
forgetting that function(i) was not returning anything, or using
suspended generators, and having them resumed and backtracking and... well,
ending up with the assignment to i being cancelled where it was not
intended.
The biggest problems I've run into are some limitations of Icon. There are
no modules, no import/export mechanism for big projects.
I would also like a better version of itweak... the current one doesn't
deal with undeclared local variables.
You end up being somewhat forced to declare local variables... which I hate
:-( I would MUCH prefer to have to declare global symbols I want to use
in a procedure, together with a mechanism to `trap' affectation to known
procedure names, and warn the user.
I'm also missing features such as manifest constants. The preprocessor is
not such a great solution when you end up with a trace that mentions `2'
and you wrote HIGHLIGHT_COLOR in your source.
Idol does have some potential as well. Pity it is a line-oriented
preprocessor... Last time I tried it, I ended up with some impossible to
debug mis-mash of code... maybe I should try harder ?
>Did you have any efficiency issues to overcome? Did you use
>coexpressions?
I very seldom need co-expressions. Knowing how they are implemented
makes them somewhat unsafe for `production' code: your process might
crash if it goes into intricate computations, and they don't exist on
every platform. There is a strange ambiguity there: on one hand,
small programs usually don't need co-expressions (the rare case such as
the label generator can be implemented using classical techniques without
obfuscating the code that much), and bigger programs where they would be
needed won't be reliable.
I'm sincerely hoping they will get better one day. I have a feeling that
Icon could deal with multi-threaded applications very nicely with just
a tweak of the coexpression mechanism.
Also, I still like the Icon compiler. In my particular case, I was using
that graph manipulator to do some research on some graphs. Having the
program run twice as fast just meant I could explore bigger graphs.
It would be great if the Icon compiler went some steps further. For
instance, Icon gobbles lots of memories to tag numerous, small structures.
The compiler could find that these structures are statically typed and
optimize almost all the way down to C.
>Have you ever needed to "sell" Icon to management? Are they
>distracted by inferior yet more popular and less powerful
>languages?
I've somewhat stopped trying to `sell' Icon to anybody... about the time
I stopped selling the Amiga to anybody, for mostly the same reasons.
There are some arresting problems.
The fact that Icon is supported by a rather small development team (for
instance, compiler work is stopped) is a problem. Not being well-spread
is another problem. Also, Icon can't deal with some things: deeper access
to the system is feasible, but you have to delve into the code to add the
things you need. This does deter from some of the qualities of Icon:
rapid development.
Also, the Icon book is rather hard to come by, for instance.
You won't find it in specialized libraries, and will have to special-order it.
All this means that Icon has almost a non-image.
I do tend to do all my development in Icon/perl/C/C++/PostScript... I use
Icon as much as I can, switch to perl when this will be faster to code,
C/C++ for anything that craves speed, and PostScript for printing
applications.
There is such a wealth of perl programmers/perl development these days that
is very difficult to match with Icon. For instance, the text editor nvi
does procure an interface to perl...
>I'm curious about these questions, but I'd also like to see
>the discussion group be more active.
Nice understatement !
Did you see my previous posting ? I'm quite willing to discuss anything
about my coding habits, as shown in X-Tiles.
--
[nosave]<http://www.eleves.ens.fr:8080/home/espie/index.html>
microsoft network is EXPLICITLY forbidden to redistribute this message.
`Seiza no matataki kazoe, uranau koi no yuku e.'
Marc Espie (Marc.Espie@ens.fr)